import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class jdbc {
    public static void main(String[] args) throws SQLException {
        // 1. 创建 DataSource
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java?characterEncoding=latin1&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("root");

        // 2. 建立连接
        Connection connection = dataSource.getConnection();

        // 3. 构造 sql
        String sql = "select * from student";
        PreparedStatement statement = connection.prepareStatement(sql);

        // 4. 执行 sql (和前面不同了)
        //    ResultSet 就表示查询的结果集合 (临时表). 此处就需要针对表进行遍历.
        ResultSet resultSet = statement.executeQuery();

        // 5. 遍历结果集合.
        //    通过 next 方法就可以获取到临时表中的每一行数据. 如果获取到最后一行之后, 再执行 next 返回 false, 循环结束.
        while (resultSet.next()) {
            // 针对这一行进行处理了.
            // 取出列的数据.
            int age = resultSet.getInt("age");
            String name = resultSet.getString("name");
            System.out.println("name = " + name + ", age = " + age);
        }

        // 6. 释放资源
        resultSet.close();
        statement.close();
        connection.close();
    }
}
